package day12;

import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;

//测试单线程池
public class TestSingle {
    static int num=100;//总票数100
    public static void main(String[] args) {
        //1.创建
        ExecutorService es= Executors.newSingleThreadExecutor();
        //2.执行
        //es.execute(Runnable);//返回值是void
        //es.submit(Callable或Runnable) Future获取call返回值
        for(int i=0;i<1000;i++){
            es.execute(()->{
                String name=Thread.currentThread().getName();
                //if(num==0) return;
                num--;
                System.out.println(name+"售出了"+(100-num)+"张票,剩余:"+num);
                if(num==0) es.shutdownNow();
            });
            //判断num==0

        }
        //3.关闭
        //关闭线程池，如果里面已经添加的任务 还会执行(不会再执行execute()添加任务了)
        //es.shutdown();
        //关闭线程池 立即关闭 凡是没有执行的任务 不会执行
        //while (num>0){ }
       // es.shutdown();
       /* if(num==0){
            es.shutdown();
        }*/
    }
}
